--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit 85f734bd9b2d0f2abe392ad26980fbf38f2a70fe
Parents : c5e1d5c
Author : Sudo-Ivan <ivan@quad4.io>
Signature : Signature validation error
Date : 2026-01-14T19:47:08-06:00
Update build configuration for multi-architecture support
- Added new build scripts for Linux and Windows targeting arm64 and x64 architectures.
- Updated package.json to include architecture-specific distribution commands.
- Modified build-backend.js to create architecture-specific build directories for better organization.
Changes
2 files changed, 38 insertions(+), 10 deletions(-)
Diff
diff --git a/package.json b/package.json
index 9e39dd25..96237b60 100644
--- a/package.json
+++ b/package.json
@@ -21,9 +21,13 @@
"electron": "pnpm run electron-postinstall && pnpm run build && electron .",
"dist": "pnpm run electron-postinstall && pnpm run build && electron-builder --publish=never",
"dist:linux": "pnpm run electron-postinstall && PLATFORM=linux pnpm run build && electron-builder --linux AppImage deb --publish=never",
+ "dist:linux-x64": "pnpm run electron-postinstall && PLATFORM=linux ARCH=x64 pnpm run build && electron-builder --linux AppImage deb --x64 --publish=never",
+ "dist:linux-arm64": "pnpm run electron-postinstall && PLATFORM=linux ARCH=arm64 pnpm run build && electron-builder --linux AppImage deb --arm64 --publish=never",
"dist:rpm": "pnpm run electron-postinstall && PLATFORM=linux pnpm run build && electron-builder --linux rpm --publish=never",
"dist:flatpak": "pnpm run electron-postinstall && PLATFORM=linux pnpm run build && electron-builder --linux flatpak --publish=never",
"dist:windows": "pnpm run electron-postinstall && PLATFORM=win32 pnpm run build && electron-builder --win portable nsis --publish=never",
+ "dist:win-x64": "pnpm run electron-postinstall && PLATFORM=win32 ARCH=x64 pnpm run build && electron-builder --win portable nsis --x64 --publish=never",
+ "dist:win-arm64": "pnpm run electron-postinstall && PLATFORM=win32 ARCH=arm64 pnpm run build && electron-builder --win portable nsis --arm64 --publish=never",
"dist:zip": "pnpm run electron-postinstall && pnpm run build && electron-forge make --targets @electron-forge/maker-zip",
"dist-prebuilt": "pnpm run electron-postinstall && pnpm run build-backend && electron-builder --publish=never",
"dist:mac-arm64": "pnpm run electron-postinstall && pnpm run build && electron-builder --mac --arm64 --publish=never",
@@ -114,7 +118,7 @@
},
"extraResources": [
{
- "from": "build/exe/linux",
+ "from": "build/exe/linux-${arch}",
"to": "backend",
"filter": [
"**/*"
@@ -123,18 +127,26 @@
]
},
"win": {
- "artifactName": "ReticulumMeshChat-v${version}-${os}.${ext}",
+ "artifactName": "ReticulumMeshChat-v${version}-${os}-${arch}.${ext}",
"target": [
{
- "target": "portable"
+ "target": "portable",
+ "arch": [
+ "x64",
+ "arm64"
+ ]
},
{
- "target": "nsis"
+ "target": "nsis",
+ "arch": [
+ "x64",
+ "arm64"
+ ]
}
],
"extraResources": [
{
- "from": "build/exe/win32",
+ "from": "build/exe/win32-${arch}",
"to": "backend",
"filter": [
"**/*"
@@ -143,16 +155,28 @@
]
},
"linux": {
- "artifactName": "ReticulumMeshChatX-v${version}-${os}.${ext}",
+ "artifactName": "ReticulumMeshChatX-v${version}-${os}-${arch}.${ext}",
"target": [
- "AppImage",
- "deb"
+ {
+ "target": "AppImage",
+ "arch": [
+ "x64",
+ "arm64"
+ ]
+ },
+ {
+ "target": "deb",
+ "arch": [
+ "x64",
+ "arm64"
+ ]
+ }
],
"maintainer": "Sudo-Ivan",
"category": "Network",
"extraResources": [
{
- "from": "build/exe/linux",
+ "from": "build/exe/linux-${arch}",
"to": "backend",
"filter": [
"**/*"
diff --git a/scripts/build-backend.js b/scripts/build-backend.js
index 700f53c8..22beb9da 100755
--- a/scripts/build-backend.js
+++ b/scripts/build-backend.js
@@ -44,9 +44,13 @@ function generateManifest(buildDir, manifestPath) {
try {
const platform = process.env.PLATFORM || process.platform;
+ const arch = process.env.ARCH || process.arch;
const isWin = platform === "win32" || platform === "win";
const targetName = isWin ? "ReticulumMeshChatX.exe" : "ReticulumMeshChatX";
- const buildDirRelative = isWin ? "build/exe/win32" : "build/exe/linux";
+
+ // Create architecture-specific build directory
+ const platformFolder = isWin ? "win32" : "linux";
+ const buildDirRelative = `build/exe/${platformFolder}-${arch}`;
const buildDir = path.join(__dirname, "..", buildDirRelative);
// Allow overriding the python command (e.g., to use wine python for cross-builds)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────